Adjusting inactivity timeout settings for a computing device

ABSTRACT

In general, embodiments of the invention provide an approach to proactively adjust timeout settings on a display device based on user activity. Specifically, a system and method are presented to adaptively adjust the inactivity timeout settings on a display device based on the application being used, the content being displayed on the device, and an analysis of the user&#39;s history with the application. The present invention calculates an inactivity timeout modifier which is utilized to modify the default operating system timeout value.

CROSS-REFERENCE TO RELATED APPLICATIONS

This patent document is a continuation of, and claims the benefit of,co-pending and co-owned U.S. patent application Ser. No. 14/721,276,filed May 26, 2015, which is a continuation of commonly owned U.S.patent application Ser. No. 12/954,965, filed Nov. 29, 2010, issued Jun.30, 2015 as U.S. Pat. No. 9,069,550. The entire contents of U.S. patentapplication Ser. No. 14/721,276 and U.S. patent application Ser. No.12/954,965 are herein incorporated by reference.

TECHNICAL FIELD

The present invention relates to adjusting inactivity timeout settingsfor a computing device (e.g., display device). Specifically, the presentinvention provides a system and method to adaptively adjust theinactivity timeout settings on a display device based on the applicationbeing used, the content being displayed on the device, and an analysisof the user's history with the application.

BACKGROUND

Many processor-based devices have various inactivity timeout rules whichtrigger certain events based on the length of time since the user lastappeared active. An inactivity timeout is a predefined amount of timethat is assumed to accurately signal that the device is no longer inuse. For example, most display devices have a dimming feature which willdim the display in order to save power. Typically, this dimming willtake place on a system-wide basis and will be enacted based on userinteraction and a time delay. A typical computer screen saver is onewell-known example of this feature. However, many other devices, such asgaming consoles, mobile phones, or tablet devices also have analogousdimming features.

This simple time-based method does not account for interactions a usermay be having with the display device without using an input device. Forexample, a user may be reading a document on the display or watching avideo. These are two activities which are time-consuming but do notnecessarily require user input. If the device is set to enter a powersaving mode, the user may be interrupted if the user is taking a longtime to read the screen or watch the video.

SUMMARY

In general, embodiments of the present invention provide an approach toadaptively adjusting the inactivity timeout settings on a displaydevice. Specifically, a system and method are presented to adaptivelyadjust the inactivity timeout settings on a display device based on theapplication being used, the content being displayed on the device, andan analysis of the user's history with the application.

In one embodiment, there is a method for adjusting an inactivity timeoutsetting on a display device of a user. In this embodiment, the methodcomprises: detecting the application that has operating system focus onthe display device; capturing the content displayed on the displaydevice; retrieving the operating system timeout value; monitoring useractivity while using the application; storing user activity ashistorical data; determining an inactivity timeout modifier based on oneor more of the application, content, historical data, and system timeoutvalue; storing the inactivity timeout modifier; and adjusting theinactivity timeout setting based on the inactivity timeout modifier.

In a second embodiment, there is a system for adjusting an inactivitytimeout setting on a display device of a user. In this embodiment, thesystem comprises: at least one processing unit and memory operablyassociated with the at least one processing unit. An inactivity timeoutadjustment tool is storable in memory and executable by the at least oneprocessing unit. The inactivity timeout adjustment tool is configuredto: detect the application that has operating system focus on thedisplay device; capture the content displayed on the display device;retrieve the operating system timeout value; monitor user activity whileusing the application; store user activity as historical data; determinean inactivity timeout modifier based on one or more of the application,content, historical data, and system timeout value; store the inactivitytimeout modifier; and adjust the inactivity timeout setting based on theinactivity timeout modifier.

In a third embodiment, there is a computer-readable medium storingcomputer instructions which, when executed, enables a computer system toadjust an inactivity timeout setting on a display device of a user, thecomputer readable medium comprising: program code for causing a computersystem to: detect the application that has operating system focus on thedisplay device; capture the content displayed on the display device;retrieve the operating system timeout value; monitor user activity whileusing the application; store user activity as historical data; determinean inactivity timeout modifier based on one or more of the application,content, historical data, and system timeout value; store the inactivitytimeout modifier; and adjust the inactivity timeout setting based on theinactivity timeout modifier.

In a fourth embodiment, there exists a method for deploying a system foradjusting an inactivity timeout setting on a display device of a user.In this embodiment, a computer infrastructure is provided and isoperable to: detect the application that has operating system focus onthe display device; capture the content displayed on the display device;retrieve the operating system timeout value; monitor user activity whileusing the application; store user activity as historical data; determinean inactivity timeout modifier based on one or more of the application,content, historical data, and system timeout value; store the inactivitytimeout modifier; and adjust the inactivity timeout setting based on theinactivity timeout modifier.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features of this invention will be more readilyunderstood from the following detailed description of the variousaspects of the invention taken in conjunction with the accompanyingdrawings in which:

FIG. 1 illustrates a computerized implementation 100 of the presentinvention.

FIG. 2 depicts an inactivity timeout adjustment tool according to oneembodiment of the present invention.

FIG. 3 shows flow diagrams for an operating system timeout routine andan activity handler routine.

FIG. 4 shows a flow diagram for a usage screen analysis routineaccording to one embodiment of this invention.

FIG. 5 shows flow diagrams for a document viewer analysis routine and adocument editor analysis routine.

FIG. 6 shows flow diagrams for an IDE viewer analysis routine and an IDEanalysis routine.

FIG. 7 shows a method flow diagram according to one embodiment of thepresent invention.

FIG. 8 shows a method flow diagram according to one embodiment of thepresent invention.

The drawings are not necessarily to scale. The drawings are merelyschematic representations, not intended to portray specific parametersof the invention. The drawings are intended to depict only typicalembodiments of the invention, and therefore should not be considered aslimiting the scope of the invention. In the drawings, like numberingrepresents like elements.

DETAILED DESCRIPTION

Exemplary embodiments will now be described more fully herein withreference to the accompanying drawings, in which exemplary embodimentsare shown. This disclosure may, however, be embodied in many differentforms and should not be construed as limited to the exemplaryembodiments set forth herein. Rather, these exemplary embodiments areprovided so that this disclosure will be thorough and complete and willfully convey the scope of this disclosure to those skilled in the art.In the description, details of well-known features and techniques may beomitted to avoid unnecessarily obscuring the presented embodiments.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of this disclosure.As used herein, the singular forms “a”, “an”, and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. Furthermore, the use of the terms “a”, “an”, etc., do notdenote a limitation of quantity, but rather denote the presence of atleast one of the referenced items. It will be further understood thatthe terms “comprises” and/or “comprising”, or “includes” and/or“including”, when used in this specification, specify the presence ofstated features, regions, integers, steps, operations, elements, and/orcomponents, but do not preclude the presence or addition of one or moreother features, regions, integers, steps, operations, elements,components, and/or groups thereof.

In general, embodiments of the invention provide an approach to adjustthe inactivity timeout settings on a computing device. Specifically, anapproach is presented for adaptively adjusting the inactivity timeoutsettings on a display device based on the application being used, thecontent being displayed on the device, and an analysis of the user'shistory with the application. The methods for improved inactivitytimeouts may be implemented through an operating system or anapplication running on the device.

FIG. 1 illustrates a computerized implementation 100 of the presentinvention. As depicted, implementation 100 includes computer system 104deployed within a computer infrastructure 102. This is intended todemonstrate, among other things, that the present invention could beimplemented within a network environment (e.g., the Internet, a widearea network (WAN), a local area network (LAN), a virtual privatenetwork (VPN), etc.), or on a stand-alone computer system. In the caseof the former, communication throughout the network can occur via anycombination of various types of communications links. For example, thecommunication links can comprise addressable connections that mayutilize any combination of wired and/or wireless transmission methods.Where communications occur via the Internet, connectivity could beprovided by conventional TCP/IP sockets-based protocol, and an Internetservice provider could be used to establish connectivity to theInternet. Still yet, computer infrastructure 102 is intended todemonstrate that some or all of the components of implementation 100could be deployed, managed, serviced, etc., by a service provider whooffers to implement, deploy, and/or perform the functions of the presentinvention for others.

Computer system 104 is intended to represent any type of computer systemthat may be implemented in deploying/realizing the teachings recitedherein. In this particular example, computer system 104 represents anillustrative system for adaptively adjust the inactivity timeoutsettings on a display device according to the present invention. Itshould be understood that any other computers implemented under thepresent invention may have different components/software, but willperform similar functions. As shown, computer system 104 includes aprocessing unit 106, memory 108 for storing an inactivity timeoutadjustment tool 150, a bus 110, and device interfaces 112.

Processing unit 106 collects and routes signals representing outputsfrom external devices 115 (e.g., a keyboard, a pointing device, adisplay, a graphical user interface, etc.) to inactivity timeoutadjustment tool 150. The signals can be transmitted over a LAN and/or aWAN (e.g., T1, T3, 56 kb, X.25), broadband connections (ISDN, FrameRelay, ATM), wireless links (802.11, Bluetooth, etc.), and so on. Insome embodiments, the signals may be encrypted using, for example,trusted key-pair encryption. Different external devices may transmitinformation using different communication pathways, such as Ethernet orwireless networks, direct serial or parallel connections, USB,Firewire®, Bluetooth®, or other proprietary interfaces. (Firewire is aregistered trademark of Apple Computer, Inc. Bluetooth is a registeredtrademark of Bluetooth Special Interest Group (SIG)).

In general, processing unit 106 executes computer program code, such asprogram code for operating inactivity timeout adjustment tool 150, whichis stored in memory 108 and/or storage system 116. While executingcomputer program code, processing unit 106 can read and/or write datato/from memory 108, storage system 116, user historical data 118, andtimeout rules registry 120. Storage system 116, user historical data118, and timeout rules registry 120 can include VCRs, DVRs, RAID arrays,USB hard drives, optical disk recorders, flash storage devices, or anyother similar storage device. Although not shown, computer system 104could also include I/O interfaces that communicate with one or moreexternal devices 115 that enable a user to interact with computer system104.

An operating system (OS) inactivity timeout control is presently foundon many operating systems that support inactivity timeouts. Operatingsystems have a default timeout value, but the user may modify thisvalue. Likewise, most operating systems have a form of a user activitydetection control which detects user activity, such as keystrokes ormouse movements. OS inactivity timeout control 140 and activitydetection control 145 are shown in FIG. 1.

An OS setting indicates how often (in milliseconds) the system checksfor user inactivity. After each user activity, the idle time is resetand begins again to accrue. If the idle time reaches the defined timeoutvalue, an ‘idle’ signal is sent to the OS to perform an inactivitytimeout event, such as dimming the display or launching a screen saver.For illustrative purposes, this disclosure will focus on dimming thedisplay of a user device when the inactivity timeout rules aretriggered.

In one embodiment of the present invention, native OS inactivity timeoutcontrol 140 is augmented to support the real-time altering of inactivitytimeouts or determine whether an inactivity timeout event shouldproceed. Native activity detection control 145 is also augmented toprovide information, either by notification or by being polled, relatedto user activity to inactivity timeout adjustment tool 150. Thefunctions and responsibilities of the two controls will be described inmore detail below.

FIG. 2 shows a more detailed view of an exemplary inactivity timeoutadjustment tool 150 shown in FIG. 1. Inactivity timeout adjustment tool150 comprises screen analysis component 160, document viewer component162, document editor component 164, IDE component 166, user page readtime component 170, collaborative page read time component 172, andinactivity timeout modification component 174.

Referring now to FIGS. 3-8, inactivity timeout adjustment tool 150 willbe described in conjunction with a set of process flows. FIG. 3 depictstwo native OS routines: OS dimmer timeout function 300 and activityhandler function 310. OS inactivity timeout control 140 performs OSdimmer timeout function 300. Any adjustments made to the default OStimeout value are stored as inactivity timeout modifiers in timeoutrules registry 120. Timeout modifiers may be an offset to the OS timeoutvalue or a replacement value. Activity detection control 145 performsactivity handler function 310. The two functions are described in detailbelow.

Referring now to OS dimmer timeout function 300, activity detectioncontrol 145 continually checks for user activity (S1). If activity isdetected, native OS activity handler routine is executed (S2). If noactivity is detected when checked, a screen analysis routine is executed(S3). Screen analysis routine is discussed in detail below. After thescreen analysis routine has completed, the length of inactivity time ischecked against the OS dimmer timeout rules (S4) stored in timeout rulesregistry 120. If the dimmer timeout threshold has not been reached, thesystem returns to monitoring for user activity. If the dimmer timeoutthreshold has been reached, an ‘idle’ signal is sent to the OS (S5) toperform the inactivity timeout event (i.e., dimming of the display).

When a user activity is detected, activity handler 145 is executed todetermine what action to take. The first check is whether the useractivity was a keystroke (S10). If a keystroke was made by the user, anative keyboard activity handler routine is executed (S11). If not akeystroke, the next check is whether the user activity involved themouse (S12). If the mouse was used, a native mouse activity handlerroutine is executed (S13). If not mouse activity, a screen analysisroutine is executed (S14). After the screen analysis routine hascompleted, an OS dimmer timeout value is set (S15).

Screen analysis component 160 performs screen analysis routine 400. Thiscomponent analyzes user activity including what application is beingused and what type of file is open to make adjustments to the timeoutrules which are better aligned with actual user needs. FIG. 4 depictsthe process flow of screen analysis routine 400. Discussed below in moredetail are several types of text-based inactivity modules includingdocument viewing, document editing, software program viewing, andsoftware program editing. It should be noted that these types areillustrative only and are not intended to limit the scope of the presentinvention.

Screen analysis begins with determining what type of application iscurrently running on the device. If the user is viewing a document(S20), then a document viewer analysis routine is executed (S21). Adocument viewer analysis routine is performed by document viewercomponent 162.

Consider the user interactions required when reading an electronicdocument. In this scenario, the number of keystrokes is not a goodpredictor of when to enable power savings methods via an inactivitytimeout. Instead, document viewer component 162 analyzes the text'sreadability as calculated by one of the several reading index formulasin common use. If the text is obtuse (e.g., a physics text, orclassical/non-native language) and thus difficult to read, theinactivity timeout modifier stored in timeout rules registry 120 ismodified to a higher value than if the text were simpler to read.

The process flow for document viewer analysis routine 500 is depicted inFIG. 5. The text is captured from the display screen (S40). Next, one ormore readability algorithms are performed to determine the difficultylevel of the text. In this example, three different tests are applied.First, the Flesch reading ease algorithm is performed on the text todetermine its ease of reading (S41). The algorithm is designed toindicate the level of difficulty when reading the text and includes coremeasures of word length and sentence length to generate a score. Second,the Coleman-Liau algorithm is applied to the text. (S42) TheColeman-Liau index is a readability test used to gauge theunderstandability of the text. Third, the Fry readability test isapplied to the text (S43). The reading difficulty level under the Frytest is calculated by the average number of sentences and syllables perhundred words. The values from the three tests are used to calculate anoverall difficulty value of the text (S44).

In one embodiment, the calculated difficulty value of the text iscompared against predefined threshold values stored in timeout rulesregistry 120. For example, separate threshold values representing textthat is hard to read and text that is medium hard to read are defined. Adifficulty value that is less than the lower threshold is determined tobe easy to read. If the text is determined to be hard to read (S45),meaning the calculated difficulty level reaches the hard to readthreshold, the timeout value is doubled (S46). If the text is determinedto be medium hard to read (S47), the timeout value is multiplied by 1.5(S48). If the text is easy to read (S49), the timeout value is notchanged (S50).

If the application is not a document viewer, screen analysis component160 checks whether the application is a document editor (S22). If so,screen analysis component 160 checks to determine whether the documentis open in read/write mode, allowing the user to make modifications tothe document (S23). If the document is open in read/write mode, controlis handed over to document editor component 164. Document editorcomponent 164 executes document editor analysis routine (S24). If thedocument is open in read-only mode, control is handed over to documentviewer component 162, which executes document viewer analysis routine(as described above) to adjust the timeout value, if necessary, based onthe readability of the text.

Document editor analysis function 510 is depicted in FIG. 5. Considerthe activity of editing a document. Document editing is determined whenapplications such as a word processing program has operating systemfocus. In computing, the focus indicates the application on the displaydevice which is currently selected by the user. In these types ofactivities, the number of keystrokes may be relevant, but a betterpredictor of activity is the complexity of the text that is beingwritten. Like the module above, this can be calculated from one of theseveral reading index formulas in common use today. Furthermore, thenumber of transitions between keyboard and mouse/pointer activity, or‘jumps’ in the position of the cursor, can be used to augment the idletimeout value.

Document editor analysis function 510 begins with performing documentviewer analysis routine 500 to acquire a difficulty level of the text(S60). Next, the program's undo buffer is analyzed (S61). In the editingcontext, the program's undo buffer is referenced as a baseline fordetermining the complexity of the text being edited. As with each of theuser activities, a contextual complexity analysis within computingactivities is done to achieve the usage improvements (S62). The timeoutmodifier is adjusted based on the analysis (S63).

In reading activities, one can apply known readability calculations todetermine complexity, whereas in editing activities these techniques arenot applicable due to the inherent incompleteness of the text beinganalyzed. Doing an analysis of the program's undo buffer, which containsthe text being added and removed, as well as its location, can yield theamount of jumping around that the editor is performing. This serves asan indication of the complexity of the input operation.

Consider that if the user is simply typing sequentially within theeditor, no matter how complex the input, the typing activity is a goodpredictor of activity. A user that is jumping around to severaldifferent areas within the editor is likely constructing a more complexdocument. In other words, the user is likely reading, reprocessing theread material, and writing new text in different locations as thewriting process advances. As such, the amount of variability in the textinsertion points is a good predictor of complexity and therefore used asan indicator as to whether there are many jumps or few jumps in textinsertion points. Using this information, the inactivity timeoutmodifier stored in timeout rules registry 120 is adjusted accordingly.

Referring back to FIG. 4, screen analysis component 160 next checkswhether the user application is an IDE (S25), if the application has notyet been identified. An integrated development environment (IDE) is asoftware application that provides comprehensive facilities to computerprogrammers for software development. If the user application is an IDE,control is handed over to IDE component 166. IDE component 166determines whether the file is open in read/write mode (S26). If thefile is open in read/write mode, IDE component 166 executes IDE analysisroutine (S27). If the file is open in edit mode, IDE component 166executes IDE viewer analysis routine (S28).

The process flow of IDE viewer analysis function 600 is depicted in FIG.6. A user engaged with a program editing application, such as an IDE,should have his inactivity timeouts intelligently set in order to have abetter user experience. Similar to the functions disclosed above, thenumber of transitions between writing in one location and reading fromanother location within the IDE, or possibly consulting referencematerial, are used to modify the inactivity timeout rules.

Referring back to IDE viewer analysis function 600, the program code iscaptured from the display screen (S70). The programming language isdetected (S71). The complexity of the code is assessed (S72). Thecomplexity of the programming activity is measured against the knownmeasures of complexity in the code, such as number of externalreferences or number of files open, within the context of the IDE.Measuring code complexity is a well-known domain in the computersciences. Next, one or more readability algorithms are performed todetermine the difficulty level of the text. As an example, the Fryreadability test is applied to the text (S73). The results from the Fryreadability test are used to calculate a difficulty value for theprogram code (S74).

The calculated difficulty value of the text is compared againstpredefined threshold values stored in timeout rules registry 120. Forexample, two threshold values representing text that is hard to read andtext that is medium hard to read. A difficulty value that is less thanthe lower threshold means the text is determined to be easy to read. Ifthe text is determined to be complex, meaning the calculated difficultylevel reaches the hard to read threshold (S75), the timeout value isdoubled (S76). If the text is determined to be of medium complexity(S77), the timeout value is multiplied by a value of 1.5 (S78). If thetext is easy to read (S79), the timeout value is not changed (S80).

IDE analysis 610 is also illustrated in FIG. 6. First, IDE view analysisroutine is performed (S85). The program's undue buffer is analyzed(S86). If there are many ‘jumps’ in the text (S87), then the timeoutmodifier is adjusted (S88).

Referring back to FIG. 4, the process continues its screen analysis indetermining the current user application, if not already found. The nextcheck is to determine whether the application is an image editor (S29).If the image is open in read/write mode (S30), then an image editoranalysis routine is executed (S31). If the application is a media player(e.g., video or music) (S32), then a timeout event will not be triggered(S33). If the program is an eBook reader (S34), then a page readeranalysis routine is executed (S35). After the proper routine hascompleted, the inactivity timeout modifier is updated (S36).

In another embodiment, the system empirically “learns” the user'sreading speed and adjusts inactivity timeouts accordingly. User readingspeed data is stored in user historical data 118. To determine readingspeed, the user page read time component 170 detects when a page isfully loaded, and when the user requests the next page of text viaeither a keystroke or a mouse action. The component stores page readingdata in user historical data 118.

For example, a user may have one page reading speed in a web browser andanother in a book reader. In one embodiment, user average page readingtimes are stored in user historical data 118 for each application, alongwith additional details to more accurately estimate the user pagereading speed based on the displayed content. For example, each websitemay have its own page reading speed. Likewise, each genre (fiction,physics textbook) in a book reader may have its own reading speed.Lastly, in the book reader example, each book may obtain its own pagereading speed that is fine tuned as the user gets further into the book.For example, the page read time may first be set to the genre of thebook, but once the user gets fifty pages into the book, the book mayhave its own discernible reading speed and the inactivity timeoutmodifier can be adjusted to be more accurate for the current book beingread.

In another embodiment, collaborative page read time 172 componentreceives page reading speeds per document from a plurality of computingdevices and stores the data in user historical data 118. Each documentis uniquely identified using a variety of known techniques. Page readingspeeds are used to calculate an average page reading speed for adocument. From that information, when a new user opens the document forreading, the collaborative average reading speed is used as the defaultfor the inactivity timeout modifier. In yet another embodiment, thedevices track reading speed per page with each page having acollaborative value associated with it. In enhanced embodiments, theuser's delta from the collaborative page read time is calculated, andthat delta is applied to new documents to arrive at a better inactivitytimeout modifier for the user.

The methods discussed above provide for adjusting the default timeoutvalue residing in the OS by creating an inactivity timeout modifier. Theprocess must also account for user interaction as the timeout eventbegins (i.e., the display on the device begins to dim). For example, asa user reads a book on a display device in which the adjusted timeoutvalue is set to three minutes. The user finds the current text difficultto read and slows his reading pace to better comprehend the subjectmatter. The display begins to dim because three minutes have elapsedsince the last page turn. The user wishes to continue reading andinteracts with the device to un-dim the display. The inactivity timeoutmodifier is updated to allow for the slower pace for the book.

Inactivity timeout modification component 174 acts as a bridge betweenthe various inactivity timeout components and the device's built-ininactivity timeout. The device queries the previously disclosedcomponents to arrive at an accurate timeout and then sets, or resets,the device's inactivity timeout value by creating/updating theinactivity timeout modifier to the adjusted value.

One example in which the methods described above may be used is in abook reading application on a portable device. Since such portabledevices have a limited battery power supply, it is desirable to have ashort display dimmer timeout, meaning without user interaction, thedevice will dim in a relatively short period of time. However, if a useris a slow reader, this may not be the best behavior, since the user willhave to interact with the device fairly often just to keep the screenbrightened while reading. In this instance, the application may use theproposed methods to record how long it takes the user to read each page.The application also records if a user interacts with the applicationwithin a very short time period after dimming the display, indicatingthe user is still reading and did not wish for the device to be dimmed.This Information is used to create a modifier to the display dimmertimeout period. This information is specific to a user and the currentreading material. Some books are read faster than others. Bydifferentiating the data and calculating a reading time for each bookstyle, the proposed methods find the most optimal display dimmingsettings to enable an enjoyable reading experience, balanced with themost efficient power saving methods.

FIGS. 7-8 depict two book reading application examples in which elementsof the present invention operate. In the examples, inactivity timeoutadjustment tool 150 controls the display dimming. In FIG. 7, theapplication reads the current timeout period from the operating system(S90). Inactivity timeout adjustment tool 150 creates a timeout modifierusing the methods detailed above for the user and book (S91). OSinactivity timeout control 140 continually checks to determine if thetimeout period has been reached with no interaction (S92). If thetimeout period is reached, the OS dims the display (S93). If the userinteracts with the device within a predefined amount of time (e.g., 5seconds) (S94), the timeout modifier associated with the user and bookis updated by inactivity timeout adjustment tool 150, and the display isun-dimmed (S95).

In FIG. 8, inactivity timeout adjustment tool 150 is recording averagetime per page and adding that information as an input to adjust thetimeout modifier. A new page is loaded into the reader application(S100). The page timer is started (S101). Inactivity timeout adjustmenttool 150 continually checks to determine whether the user has turned thepage (S102). If the user has turned the page, the page timer is resetand the average page read time is updated for the user and material(S103) by inactivity timeout adjustment tool 150. Average page read timefor the user and material is stored in user historical data 118.Inactivity timeout adjustment tool 150 uses the data gathered in userhistorical data 118 to adjust the dimmer timeout modifier.

If the user has not turned the page, OS inactivity timeout control 140checks the default OS timeout value and the inactivity timeout modifierto determine whether the timeout period has been reached (S104). If thetimeout period is reached, the OS begins dimming the device (S105). Ifthe user interacts with the device within a predefined amount of time(e.g., 5 seconds) (S106), the display is un-dimmed (S107) and inactivitytimeout adjustment tool 150 returns to monitoring for a page turn.

Again, despite the illustrative focus on screen timeouts, it isimportant to reiterate that the principles described herein can bebroadly applied to any timeout or inactivity-based change in systembehaviors.

The process flow and method process flow diagrams discussed aboveillustrate the architecture, functionality, and operation of possibleimplementations of systems, methods, and computer program productsaccording to various embodiments of the present invention. In thisregard, each portion of each flowchart may represent a module, segment,or portion of code, which comprises one or more executable instructionsfor implementing the specified logical function(s). It will also benoted that each block of the flowchart illustration can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts.

Further, it can be appreciated that the methodologies disclosed hereincan be used within a computer system to adaptively adjust the inactivitytimeout settings on a display device. In this case, inactivity timeoutadjustment tool 150 can be provided, and one or more systems forperforming the processes described in the invention can be obtained anddeployed to computer infrastructure 102. To this extent, the deploymentcan comprise one or more of: (1) installing program code on a computingdevice, such as a computer system, from a computer-readable medium; (2)adding one or more computing devices to the infrastructure; and (3)incorporating and/or modifying one or more existing systems of theinfrastructure to enable the infrastructure to perform the processactions of the invention.

The exemplary computer system 104 may be described in the generalcontext of computer-executable instructions, such as program modules,being executed by a computer. Generally, program modules includeroutines, programs, people, components, logic, data structures, and soon, that perform particular tasks or implements particular abstract datatypes. Exemplary computer system 104 may be practiced in distributedcomputing environments where tasks are performed by remote processingdevices that are linked through a communications network. In adistributed computing environment, program modules may be located inboth local and remote computer storage media including memory storagedevices.

Furthermore, an implementation of exemplary computer system 104 may bestored on or transmitted across some form of computer readable media.Computer readable media can be any available media that can be accessedby a computer. By way of example, and not limitation, computer readablemedia may comprise “computer storage media” and “communications media.”

“Computer storage media” include volatile and non-volatile, removableand non-removable media implemented in any method or technology forstorage of information such as computer readable instructions, datastructures, program modules, or other data. Computer storage mediaincludes, but is not limited to, RAM, ROM, EEPROM, flash memory or othermemory technology, CD-ROM, digital versatile disks (DVD) or otheroptical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can be accessed by acomputer.

“Communication media” typically embodies computer readable instructions,data structures, program modules, or other data in a modulated datasignal, such as carrier wave or other transport mechanism. Communicationmedia also includes any information delivery media.

The term “modulated data signal” means a signal that has one or more ofits characteristics set or changed in such a manner as to encodeinformation in the signal. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, RF,infrared, and other wireless media. Combinations of any of the above arealso included within the scope of computer readable media.

It is apparent that there has been provided with this invention anapproach for adaptively adjusting the inactivity timeout settings on adisplay device. While the invention has been particularly shown anddescribed in conjunction with a preferred embodiment thereof, it will beappreciated that variations and modifications will occur to thoseskilled in the art. Therefore, it is to be understood that the appendedclaims are intended to cover all such modifications and changes thatfall within the true spirit of the invention.

What is claimed is:
 1. A method for adjusting an inactivity timeoutsetting on a display device of a user, comprising: detecting anapplication that has operating system focus on the display device; ifthe application is not a document viewer, determining whether theapplication is a document editor; if the application is the documenteditor, determining whether the document is open in read/write mode orread-only mode; if the document is open in the read-only mode, executinga routine comprising: capturing content displayed on the display device,the content comprising text; retrieving an operating system timeoutvalue; monitoring user activity while using the application; storing theuser activity as historical data; determining an inactivity timeoutmodifier based on an analysis of an undo buffer of the application, theundo buffer comprising text being added, text being removed, a locationof the text being added, and a location of the text being removed; andadjusting the inactivity timeout setting based on the inactivity timeoutmodifier; and if the document is open in the read/write mode, executinga routine allowing the user to make modifications to the document. 2.The method of claim 1, further comprising: calculating a readabilityscore for the text using at least one readability formula.
 3. The methodof claim 2, further comprising: retrieving at least one predefinedthreshold value; and including the readability score and at least onethreshold value in determining the inactivity timeout modifier.
 4. Themethod of claim 3, further comprising: calculating a reading speed forthe user; storing the reading speed for the user; including the readingspeed in determining the inactivity timeout modifier.
 5. The method ofclaim 3, further comprising: calculating an average reading speed for aplurality of device users; storing the average reading time for theplurality of device users; and including the average reading time indetermining the inactivity timeout modifier.
 6. The method of claim 1,wherein the application displays content including editable text.
 7. Themethod of claim 6, further comprising: calculating a readability scorefor the text using at least one readability formula; retrieving at leastone predefined threshold value; and including the readability score andat least one threshold value in determining the inactivity timeoutmodifier.
 8. The method of claim 7, further comprising: analyzing theundo buffer of the application; determining a complexity level of thetext based on the analysis; and including the complexity level indetermining the inactivity timeout modifier.
 9. The method of claim 1,wherein the inactivity timeout modifier is updated in response tooccurrences after the inactivity timeout duration has occurred.
 10. Themethod of claim 1, wherein a solution service provider provides acomputer infrastructure operable to perform the method for one or moreconsumers.
 11. A system for adjusting an inactivity timeout setting on adisplay device of a user, comprising: a bus; a processor coupled to thebus; and a memory medium coupled to the bus, the memory mediumcomprising instructions to: detect an application that has operatingsystem focus on the display device; if the application is not a documentviewer, determine whether the application is a document editor; if theapplication is the document editor, determine whether the document isopen in read/write mode or read-only mode; if the document is open inthe read-only mode, execute a routine comprising: capture contentdisplayed on the display device, the content comprising text; retrievean operating system timeout value; monitor user activity while using theapplication; store the user activity as historical data; determine aninactivity timeout modifier based on an analysis of an undo buffer ofthe application, the undo buffer comprising text being added, text beingremoved, a location of the text being added, and a location of the textbeing removed; and adjust the inactivity timeout setting based on theinactivity timeout modifier; and if the document is open in theread/write mode, execute a routine allowing the user to makemodifications to the document.
 12. The system of claim 11, the memorymedium further comprising instructions to: calculate a readability scorefor the text using at least one readability formula.
 13. The system ofclaim 12, the memory medium further comprising instructions to: retrieveat least one predefined threshold value; and include the readabilityscore and at least one threshold value in determining the inactivitytimeout modifier.
 14. The system of claim 12, the memory medium furthercomprising instructions to: calculate a reading speed for the user;store the reading speed for the user; and include the reading speed indetermining the inactivity timeout modifier.
 15. The system of claim 12,the memory medium further comprising instructions to: calculate anaverage reading speed for a plurality of device users; store the averagereading time for the plurality of device users; and include the averagereading time in determining the inactivity timeout modifier.
 16. Thesystem of claim 11, wherein the application displays content includingeditable text
 17. The system of claim 16, the memory medium furthercomprising instructions to: calculate a readability score for the textusing at least one readability formula; retrieve at least one predefinedthreshold value; and include the readability score and at least onethreshold value in determining the inactivity timeout modifier.
 18. Thesystem of claim 17, the memory medium further comprising instructionsto: analyze the undo buffer of the application; determine a complexitylevel of the text based on the analysis; and include the complexitylevel in determining the inactivity timeout modifier.
 19. The system ofclaim 11, wherein the inactivity timeout modifier is updated in responseto occurrences after the inactivity timeout duration has occurred.
 20. Acomputer program product for adjusting an inactivity timeout setting ona display device of a user, the computer program product comprising acomputer readable storage media, and program instructions stored on thecomputer readable storage media, to: detect an application that hasoperating system focus on the display device; if the application is nota document viewer, determine whether the application is a documenteditor; if the application is the document editor, determine whether thedocument is open in read/write mode or read-only mode; if the documentis open in the read-only mode, execute a routine comprising: capturecontent displayed on the display device, the content comprising text;retrieve an operating system timeout value; monitor user activity whileusing the application; store the user activity as historical data;determine an inactivity timeout modifier based on an analysis of an undobuffer of the application, the undo buffer comprising text being added,text being removed, a location of the text being added, and a locationof the text being removed; and adjust the inactivity timeout settingbased on the inactivity timeout modifier; and if the document is open inthe read/write mode, execute a routine allowing the user to makemodifications to the document.